package com.neuedu.action.web;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;
import com.neuedu.model.Food;
import com.neuedu.service.FoodService;
import com.neuedu.util.StringUtil;

@Controller
@RequestMapping(value = "/Food")
public class AddFoodAction {

	@Autowired
	private FoodService foodService;

	// 下拉框
	@RequestMapping(value = "/findList")
	public void findList(HttpServletRequest request, HttpServletResponse response) throws Exception {
		List<Food> list = foodService.findList();

		String str = JSONObject.toJSONString(list);
		response.getWriter().write(str);
	}

	// 查询所有
	@RequestMapping(value = "/findAll")
	public void findAll(Food food, HttpServletRequest request, HttpServletResponse response) throws Exception {

		int page = Integer.parseInt(request.getParameter("page"));
		int rows = Integer.parseInt(request.getParameter("rows"));

		Map<String, Object> map = new HashMap<String, Object>();
		Map<String, Object> pageMap = new HashMap<String, Object>();

		pageMap.put("foodName", StringUtil.formatString(food.getFoodName()));
		pageMap.put("startPage", (page - 1) * rows); // 从第几条数据开始查询
		pageMap.put("endPage", rows); // 每页查询多少条记录

		List<Food> f = foodService.findAll(pageMap);

		int total = foodService.countFood();

		map.put("rows", f);
		map.put("total", total);

		String str = JSONObject.toJSONString(map);

		response.getWriter().write(str);
	}

	// 添加
	@RequestMapping(value = "addFood")
	public void addFood(MultipartFile file1, Food food, HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		// 文件的原始名称
		System.out.println("fileName：" + file1.getOriginalFilename());
		// 取得网站程序在服务器磁盘的路径
		String basePath = request.getServletContext().getRealPath("/");

		// 重新使用时间命名文件名，避免出现中文或不雅文件名
		String newFileName = System.currentTimeMillis()
				+ file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf("."));

		String uploadPath = basePath + "/pages/images/" + newFileName;
		System.out.println("newFileName：" + uploadPath);

		try {
			File outputFile = new File(uploadPath);
			// 通过MultipartFile的方法直接写文件（注意这个时候）
			food.setFoodImg("images/" + newFileName);
			file1.transferTo(outputFile);
		} catch (IOException e) {
			System.out.println("上传文件出差！------");
		}

		int res = foodService.addFood(food);
		System.out.println(res);
		Map<String, Object> map = new HashMap<String, Object>();
		if (res > 0) {
			// map.put("success", true);
			response.sendRedirect(request.getContextPath() + "/Personal/findArticle.do");
		} else {
			map.put("success", false);
			map.put("errorMsg", "Save user fail !!!");
		}
		String str = JSONObject.toJSONString(map);
		response.getWriter().write(str);

	}

	// 修改
	@RequestMapping(value = "updateFood")
	public void updateFood(MultipartFile file1, Food food, HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		// 文件的原始名称
		System.out.println("fileName：" + file1.getOriginalFilename());
		// 取得网站程序在服务器磁盘的路径
		String basePath = request.getServletContext().getRealPath("/");

		// 重新使用时间命名文件名，避免出现中文或不雅文件名
		String newFileName = System.currentTimeMillis()
				+ file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf("."));

		String uploadPath = basePath + "/pages/images/" + newFileName;
		System.out.println("newFileName：" + uploadPath);

		try {
			File outputFile = new File(uploadPath);
			// 通过MultipartFile的方法直接写文件（注意这个时候）
			food.setFoodImg("images/" + newFileName);
			file1.transferTo(outputFile);
		} catch (IOException e) {
			System.out.println("上传文件出错！------");
		}

		int res = foodService.updateFood(food);
		Map<String, Object> map = new HashMap<String, Object>();
		if (res > 0) {
			//map.put("success", true);
			response.sendRedirect(request.getContextPath() + "/Personal/findArticle.do");
		} else {
			map.put("success", false);
			map.put("errorMsg", "update user fail !!!");
		}
		String str = JSONObject.toJSONString(map);
		response.getWriter().write(str);
	}

	// 删除
	@RequestMapping(value = "deleteFood")
	public void deleteFood(Integer foodNo, HttpServletRequest request, HttpServletResponse response) throws Exception {

		int res = foodService.deleteFood(foodNo);
		Map<String, Object> map = new HashMap<String, Object>();

		if (res > 0) {
			map.put("success", true);
		} else {
			map.put("success", false);
			map.put("errorMsg", "update user fail !!!");
		}

		String str = JSONObject.toJSONString(map);
		response.getWriter().write(str);
	}
}
